package it.gestionedocumentale.struts.form;

import it.gestionedocumentale.model.Gruppo;
import it.gestionedocumentale.spring.service.MyServiceFactory;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

public class UtenteForm extends ActionForm{
	private static Log log = LogFactory.getLog(UtenteForm.class);
	
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private Long idUtente;
	private String login;
	private String password;
	private String attivo;
	private String nome;
	private String cognome;
	private String email;
	private Long idGruppo;
	private String codGruppo;
	
	public Long getIdUtente() {
		return idUtente;
	}
	public void setIdUtente(Long idUtente) {
		this.idUtente = idUtente;
	}
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login.equals("")?null:login;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getAttivo() {
		return attivo;
	}
	public void setAttivo(String attivo) {
		this.attivo = attivo.equals("")?null:attivo;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome.equals("")?null:nome;
	}
	public String getCognome() {
		return cognome;
	}
	public void setCognome(String cognome) {
		this.cognome = cognome.equals("")?null:cognome;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email.equals("")?null:email;
	}
	public Long getIdGruppo() {
		return idGruppo;
	}
	public void setIdGruppo(Long idGruppo) {
		this.idGruppo = idGruppo==0?null:idGruppo;
	}
	public void setCodGruppo(String codGruppo) {
		this.codGruppo = codGruppo;
	}
	public String getCodGruppo() {
		return codGruppo;
	}
	
	public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
		
		ActionErrors errors = new ActionErrors();
		
		if (this.getLogin().equals("")) {
			errors.add("login", new ActionMessage("errors.UtenteForm.login.campo_vuoto"));
		}
		if (this.getPassword().equals("")) {
			errors.add("password", new ActionMessage("errors.UtenteForm.password.campo_vuoto"));
		}
		if (this.getAttivo()==null || this.getAttivo().equals("")) {
			errors.add("attivo", new ActionMessage("errors.UtenteForm.attivo.campo_vuoto"));
		}
		if (this.getNome().equals("")) {
			errors.add("nome", new ActionMessage("errors.UtenteForm.nome.campo_vuoto"));
		}
		if (this.getCognome().equals("")) {
			errors.add("cognome", new ActionMessage("errors.UtenteForm.cognome.campo_vuoto"));
		}
		if (this.getEmail().equals("")) {
			errors.add("email", new ActionMessage("errors.UtenteForm.email.campo_vuoto"));
		}
		if (this.getIdGruppo() <= 0) {
			errors.add("idGruppo", new ActionMessage("errors.UtenteForm.idGruppo.campo_vuoto"));
		}
		if (errors.size()>0) {
			List<Gruppo> listaGruppi = null;
			try {
				listaGruppi = MyServiceFactory.getGruppoService().findAll();
			}
			catch(Exception e) {
				e.printStackTrace();
				log.error(e);
			}
			request.setAttribute("listaGruppi", listaGruppi);
		}
		return errors;
	}
	
}
